package com.ruoyi.spspublic.mapper;

import com.ruoyi.spspublic.domain.FieldData;
import com.ruoyi.spspublic.domain.TMisTask;
import com.ruoyi.spspublic.domain.dto.CommonAttributeDTO;
import com.ruoyi.spspublic.domain.dto.TicketQueryDTO;
import com.ruoyi.spspublic.domain.vo.TDwBranchVo;
import com.ruoyi.spspublic.domain.vo.TQuertionScheduleVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 任务列Mapper接口
 *
 * @author ruoyi
 * @date 2023-08-18
 */
public interface TMisTaskMapper {
  /**
   * 查询任务列
   *
   * @param ctId 任务列ID
   * @return 任务列
   */
  public TMisTask selectTMisTaskById(String ctId);

  /**
   * 查询任务列列表
   *
   * @param tMisTask 任务列
   * @return 任务列集合
   */
  public List<TMisTask> selectTMisTaskList(TMisTask tMisTask);

  /**
   * 新增任务列
   *
   * @param tMisTask 任务列
   * @return 结果
   */
  public int insertTMisTask(TMisTask tMisTask);

  /**
   * 修改任务列
   *
   * @param tMisTask 任务列
   * @return 结果
   */
  public int updateTMisTask(TMisTask tMisTask);

  /**
   * 删除任务列
   *
   * @param ctId 任务列ID
   * @return 结果
   */
  public int deleteTMisTaskById(String ctId);

  /**
   * 批量删除任务列
   *
   * @param ctIds 需要删除的数据ID
   * @return 结果
   */
  public int deleteTMisTaskByIds(String[] ctIds);

  TMisTask selectOldTask(
      @Param("functionNo") String functionNo, @Param("businessNo") String businessNo);

  public List<TMisTask> selectOldTaskList(
      @Param("functionNo") String functionNo, @Param("businessNo") String businessNo);

  /**
   * 通用直接执行sql
   *
   * @param sql
   */
  void execute(@Param("sql") String sql);

  /**
   * 通用数量
   *
   * @param sql
   * @return
   */
  Integer selectCount(@Param("sql") String sql);

  /**
   * 通用选取一个字段
   *
   * @param sql
   * @return
   */
  String selectGenericString(@Param("sql") String sql);

  List<String> selectGenericStringList(@Param("sql") String sql);

  List<TMisTask> selectTodoTaskList(TicketQueryDTO query);

  CommonAttributeDTO selectCommonAttributeDTO(@Param("sql") String sql);

  List<TMisTask> selectPartymanLastTask(@Param("ctId") String ctId);

  void deleteTMisTaskByBusinessNo(
      @Param("functionNumber") String functionNumber, @Param("ctId") String ctId);

  int selectGenericCount(String s);

  /** 任务交办 */
  List<FieldData> selectFieldDataTaskIssuedList(FieldData fieldData);

  /** 任务交办-写代办任务 */
  List<FieldData> selectFieldDataTaskIssuedDBList(FieldData fieldData);

  /** 任务上报 */
  List<FieldData> selectFieldDataTaskReportList(FieldData fieldData);

  /** 特色项目 */
  List<FieldData> selectFieldDataProjectList(FieldData fieldData);

  /** 计算考核总分 */
  List<FieldData> selectBranchSumValue(FieldData fieldData);

  public int updateAssess(FieldData fieldData);

  /**
   * 根据sql返回对应的结构数据
   *
   * @param sql
   * @return
   */
  List<FieldData> selectValueWithSQL(String sql);

  /**
   * 更改所有相关任务的接收人
   *
   * @param oldDealer
   * @param newDealer
   */
  void assignTask(@Param("oldDealer") String oldDealer, @Param("newDealer") String newDealer);

  public TQuertionScheduleVo selectTQuertionScheduleById(String ctId);

  /***
   * 直属上级有对应银行账户的组织(党委+支部)
   */
  /*public TDwBranchVo selectTopBranch(String ctId);*/
  public List<TDwBranchVo> selectTopBranch(String ctId);

/*  *//****
   * 支部缴费信息
   *//*
  public TDwBranchDuesVo selectTDwBranchDuesVo(String ctId);*/

  //党费撤销查组织
  public TDwBranchVo  selectTDwBranchId(TDwBranchVo tDwBranchVo);

    List<TMisTask> selectTaskNeedPushing();

  List<TMisTask> selectTaskNeedDeleting();
}
